/******************************************************************************
 * Copyright (C) 2011 ShenZhen ComTop Information Technology Co.,Ltd
 * All Rights Reserved.
 * 本软件为深圳康拓普开发研制。未经本公司正式书面同意，其他任何个人、团体不得使用、
 * 复制、修改或发布本软件.
 *****************************************************************************/

package com.code.common.mq;

import java.io.Serializable;

import javax.jms.ObjectMessage;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jms.core.JmsTemplate;

import com.code.common.exception.UtilException;

/**
 * 消息接收
 * 
 * @author 郑重
 * @since 1.0
 * @version 2010-12-2 郑重
 */
public class JMSReceiver {
    
    /**
     * 日志
     */
    private static final Logger LOGGER = LoggerFactory.getLogger(JMSReceiver.class);
    
    /**
     * 模板
     */
    private JmsTemplate jmsTemplate;
    
    /**
     * @return Returns the JmsTemplate.
     */
    public JmsTemplate getJmsTemplate() {
        return jmsTemplate;
    }
    
    /**
     * @param jmsTemplate The JmsTemplate to set.
     */
    public void setJmsTemplate(JmsTemplate jmsTemplate) {
        this.jmsTemplate = jmsTemplate;
    }
    
    /**
     * 队列名称
     * 
     * @param queueName 队列名称
     * @return 接收消息返回值
     */
    public Serializable receive(String queueName) {
        Serializable objRestult = null;
        try {
            System.out.println("JMSReceiver.receive -------------------------------------");
            ObjectMessage objMsg = (ObjectMessage) jmsTemplate.receive(queueName);
            objRestult = objMsg.getObject();
        } catch (Exception e) {
            LOGGER.error("从" + queueName + "队列接收消息异常", e);
            throw new UtilException("从" + queueName + "队列接收消息异常", e);
        }
        return objRestult;
    }
}